package com.scrx.ymg.dao.head;

import com.scrx.ymg.entity.AgentDrawings;
import com.scrx.ymg.entity.AgentInfo;
import com.scrx.ymg.entity.BankAccount;
import com.scrx.ymg.entity.DividedInto;
import com.scrx.ymg.entity.GoodsType;
import com.scrx.ymg.entity.HeadMoney;
import com.scrx.ymg.entity.HeadWithdarw;
import com.scrx.ymg.entity.YmgHead;

public interface IHeadDao {
	
	/**
	 * 得到提现设置信息
	 * @return
	 */
    public HeadWithdarw getHeadWithdarw();
    
    /**
     * 添加顶级商品分类
     * @return
     */
	public String addParentGoodsType(GoodsType goodsType);
    
	/**
	 * 添加子级商品分类
	 * @return
	 */
	public String addOffspringGoodsType(GoodsType goodsType);
	
	/**
	 * 查询商品分类
	 * @param id
	 * @return
	 */
	public GoodsType findOne(int id);
    
	/**
	 * 修改商品分类
	 * @param goods
	 */
	public String updateGoodsType(GoodsType goods);
    
	
	/**
	 * 更新代理商支付方式
	 * @param info
	 * @return
	 */
	public String updateAgentInfo(AgentInfo info);
    
	
	/**
	 * 查询分成设置
	 * @return
	 */
	public DividedInto selectDividedInto();
	
    /**
     * 更新分成设置
     * @param into
     * @return
     */
	public String updateDividedInto(DividedInto into);
    
	
	/**
	 * 根据id查询提现记录
	 * @param transferNo
	 * @return
	 */
	public AgentDrawings getDrawingsById(String transferNo);

	/**
	 * 查询超市账户
	 * @param merchantId
	 * @return
	 */
	public BankAccount getBankAccountBySuperId(Integer merchantId);
    
	/**
	 * 查询代理商账户
	 * @param merchantId
	 * @return
	 */
	public BankAccount getBankAccountByAgentId(Integer merchantId);
    
	/**
	 * 查询异业账户
	 * @param merchantId
	 * @return
	 */
	public BankAccount getBankAccountByOtherId(Integer merchantId);
   
	/**
	 * 得到总部金额
	 * @return
	 */
	public HeadMoney getHeadMoney();
    
	/**
	 * 查询直营账户
	 * @param merchantId
	 * @return
	 */
	public BankAccount getBankAccountByDirectId(Integer merchantId);
    
	/**
	 * 更新提现
	 * @param drawing
	 * @return
	 */
	public String updateAgentDrawings(AgentDrawings drawing);
    
	/**
	 * 更新拒绝提现相关金额
	 * @param drawing
	 * @param obj
	 * @param headMoney
	 * @return
	 */
	public String updateReturnMoney(AgentDrawings drawing, Object obj, HeadMoney headMoney);
    
	/**
	 * 更新总部密码
	 * @param head
	 * @return
	 */
	public String updateYmgHead(YmgHead head);
    
	/**
	 * 得到总部账户
	 * @return
	 */
	public YmgHead getHeadInfo();


}
